package cn.corffen.test.algorithm.leetcode.easy;

import java.util.Arrays;

/**
 * 给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一。
 *
 * 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。
 *
 * 你可以假设除了整数 0 之外，这个整数不会以零开头。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/plus-one
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class PlusOneQuestion66 {
    public static void main(String[] args) {
        int[] origin1 = new int[]{9, 8, 9};
        int[] origin2 = new int[]{9, 9, 9};
        PlusOneQuestion66 solution = new PlusOneQuestion66();
        int[] result1 = solution.getPlusOne(origin1);
        int[] result2 = solution.getPlusOne(origin2);
        System.out.println(Arrays.toString(result1));
        System.out.println(Arrays.toString(result2));
    }

    public int[] getPlusOne(int[] a) {
        int length = a.length - 1;
        for (int i = length; i >= 0; i--) {
            a[i]++;
            a[i] %= 10;
            if (a[i] != 0) {
                return a;
            }
        }
        int[] result = new int[length + 2];
        result[0] = 1;
        return result;
    }
}
